Download Latest Version ilios2_distribution_20120927.tar.gz (12.4 MB)
Email in envelope

Get an email when there's a new version of ilios 2 curriculum management system

Home / Application code / Release_20120221
Name Modified Size InfoDownloads / Week
Parent folder
patches 2012-02-23
readme.md 2012-02-24 6.5 kB
moodle-ilios-block-20110830.tar.gz 2012-02-21 2.7 kB
ilios2_distribution_20120221.tar.gz 2012-02-21 12.3 MB
Totals: 4 Items   12.3 MB 0

February 21th, 2012

About

This is the sixth source code release of Ilios 2 (version 2.0.6b).

Please note that the modifiable contents of the are known to grow between version releases, so give the distribution file a look if you are upgrading from a previous install. system/application/config/config.php

The changelist of notables is maintained in a parallel file named _ILIOS2_VERSION_HISTORY.txt.

Please keep up to date, and feel free to contact us via any of the following:

Thanks from the Ilios 2 Team.

Installation

Prerequisites and Dependencies

The Ilios 2 server side code relies upon the following:

  • Apache 2.2.3+ or IIS 6+

  • PHP 5.2.X where X is at least 10, with mysqli support.

    Note: short tags must be turned on in the PHP configuration (short_open_tag = On)

  • MySQL 5.0.77 or later, with support for both InnoDB and MyISAM

    Note: MySQL must NOT run in strict SQL mode.

  • A Shibboleth authentication system which returns the authenticated user's unique email address via the 'mail' HTTP header field. See, also, 'SECURITY' below.

Deployment

Ilios 2 uses the CodeIgniter framework and, as such, has its directory structure laid out in usual CodeIgniter structure.

The minimal steps to get an Ilios 2 deployment running are not that great and can be described as the following:

  1. Copy the Ilios 2 release tar ball into the root directory of your web server (or whatever subdirectory you wish)

  2. Unpack the tarball

  3. Change file permissions appropriately. The following directories need to be able to be written to by your Apache process:

    learning_materials
    tmp_uploads
    system/logs
    
  4. Configure the following files to reflect your institution's name, appropriate URLs, and database attributes:

    present_initial_frame.html
    present_actual.php
    system/application/config/config.php
    system/application/config/database.php
    system/application/helpers/I2_url_helper.php
    
  5. Construct and populate your database as described below

  6. Run the script found in the root directory called: install_user_zero.sh

  7. Turn on Shibboleth protection -- detailed more below.

  8. Ilios 2 should now be ready for use.

Construction and population of the database

The database may be constructed by source-ing the table schemas, stored procedures and stored functions SQL.

Thereafter, you may ingest the 2010 MeSH universe SQL. Alternatively, download the MeSH XML of your choosing, ant compile the source code in ilios2_mesh_parser.tar.gz and run the resulting Java program against the XML file to populate your MeSH databases.

To create the needed tables, stored procedures and stored functions for Ilios2, source the following the SQL files:

database/ilios2_tables.sql
database/ilios2_stored.sql

Once you've done this, you should populate the following tables appropriately (an example population exists in database/data_population):

alert_change_type
competency
discipline
learning_material_status
learning_material_user_role
school
department
session_type
user_role

Lastly, the 2010 MeSH universe SQL can be found in the mesh_tables_and_data.sql.gz file which is in the database/data_population directory.

Shibbolizing Ilios

We recommend the following exposure scheme; this is assuming Ilios2 is installed at the web-root:

<Location />
  AuthType shibboleth
  ShibRequestSetting requireSession 1
  require valid-user
</Location>

<LocationMatch /$>
  Satisfy Any
  Allow from all
</LocationMatch>

<Location /ilios2.php/authentication_controller>
  Satisfy Any
  Allow from all
</Location>

<Location /index.php>
  Satisfy Any
  Allow from all
</Location>

<Location /present.html>
  Satisfy Any
  Allow from all
</Location>
<Location /present_nav_frame.html>
  Satisfy Any
  Allow from all
</Location>
<Location /present_initial_frame.html>
  Satisfy Any
  Allow from all
</Location>
<Location /images>
  Satisfy Any
  Allow from all
</Location>

<Location /system/application/views/scripts>
  Satisfy Any
  Allow from all
</Location>
<Location /system/application/views/images>
  Satisfy Any
  Allow from all
</Location>

<Location /favicon.ico>
  Satisfy Any
  Allow from all
</Location>

<Location /VERSION.php>
  Satisfy Any
  Allow from all
</Location>

Upgrading

The least painful way to upgrade from the previous version would likely be to copy the following items out of the way:

learning_materials
tmp_uploads
present_initial_frame.html
present_actual.php
system/application/config/config.php
system/application/config/database.php
system/application/helpers/I2_url_helper.php

Then backup all data of course, and next unpack the new tarball over the pre-existing install.

Copy back the above listed assets, also noting any changes to the files listed at the top of this document (like system/application/config/config.php) which need be included in your older version.

Lastly, run the SQL commands specified in database/_DB_UPGRADE.sql on your Ilios database that apply to the range of versions that you are upgrading from/to.

Authentication and Security

While there is support built in to allow an Ilios-only authentication system, it is turned off in this deployment as we deploy at UCSF using Shibboleth to provide authentication.

If you wish to run Ilios internal authentication in place of shibboleth, please download and apply the authentication patch. The patch file and further instructions can be found in the /patches sub-directory.

Caveat for Developers

A number of things depend on the Javascript 'thread' model (or lack thereof); should you be considering porting this code to a different language, please keep that in mind.

Thanks

The Ilios 2 Team would like to thank the UCSF School of Medicine and Office of Educational Technology for their support of this project.

Source: readme.md, updated 2012-02-24